Skip to main content

문자열 내림차순으로 배치하기

문제 설명

문자열 s에 나타나는 문자를 큰것부터 작은 순으로 정렬해 새로운 문자열을 리턴하는 함수, solution을 완성해주세요.

s는 영문 대소문자로만 구성되어 있으며, 대문자는 소문자보다 작은 것으로 간주합니다.

제한사항

  • str은 길이 1 이상인 문자열입니다.

입출력 예

sreturn
"Zbcdefg""gfedcbZ"

풀이

첫 번째 풀이
def solution(s):
return ''.join(sorted(s, reverse=True))

'A'는 아스키코드값으로 65이고, 'a'는 97이기 때문에,

문자열도 오름차순, 내림차순으로 정렬할 수 있습니다.

단 파이썬의 내장함수인 sort() 함수로 정렬하기 위해서는 문자열 자체로는 정렬을 할 수 없고 문자 리스트로 변환한 후에 정렬해야 합니다.

예를 들어서 문자열 "cba"가 있다면 문자 리스트 ['c', 'b', 'a']로 변환 후에 sort()를 해야 합니다. 그리고 ''.join()으로 문자 리스트를 다시 문자열로 변환해 주면 됩니다.

하지만 sorted() 함수를 사용하면 문자열을 문자 리스트로 변환해줄 필요가 없습니다. 내부적으로 문자열을 문자 리스트로 변환 후 정렬을 수행하기 때문입니다.